package com.mm.cloud.lease.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mm.cloud.common.core.result.Result;
import com.mm.cloud.lease.dto.income.form.GenerateTenantIncomeDTO;
import com.mm.cloud.lease.entity.TenantIncome;
import com.mm.cloud.lease.vo.income.preview.TenantIncomePreviewVO;

/**
 * <p>
 * 租客账单 服务类
 * </p>
 */
public interface ITenantIncomeService extends IService<TenantIncome> {

    /**
     * 根据租客资料与入参，按租期与缴费方式生成账单与子账单
     * 关键步骤需有详尽注释，禁止使用 BeanUtils
     *
     * @param dto 生成参数
     * @return 主账单ID
     */
    Result<TenantIncomePreviewVO> previewIncome(GenerateTenantIncomeDTO dto);
}
